**第2天
今天也繼續加油、繼續刷刷刷~
————————————我是可愛的題目分隔線————————————
題目1:說明Python的特色及優點
Python特色:它是一種解釋型語言,意味著它的程式碼在執行時由解釋器「逐行」執行,而非在執行前編譯成機器碼,這會使開發過程更靈活及高效率。
Python優點:
**額外補充Pythonista **
Pythonista是一款專門為iOS設備(例如:iPhone和iPad)設計的應用程式,它可以在iOS設備上執行:
第1題結束。
---距離集滿300題還剩289題---
————————————我是可愛的題目分隔線————————————
題目2:分別說明CSRF跟CORS的意思
CSRF(跨站請求偽造):
CSRF是一種網路攻擊方式,攻擊者利用受害者已經登入的身份,偷偷的讓受害者在不知情的情況下做一些不想做操作。
舉個例子:
假設我在我手機已經登入了一個銀行網站,然後我的信箱有收到駭客設計過的一個網址,長得很像我已經都入過的銀行發的通知信,如果我好奇點進去的話,就有可能讓駭客盜取我銀行帳戶裡面的錢。
CORS(跨來圓茲圓共享):
CORS是一個網頁安全機制,讓瀏覽器能夠控制哪些網路資源可以被接收。
舉個例子:
假設有一個網頁在 example.com,我想要從 api.anotherwebsite.com 獲取資料,但出於安全考量,瀏覽器通常會阻止這種跨來源的請求。
為了解決這個問題,CORS 機制允許 aapi.anotherwebsite.com 在回應的標頭中設置一些特殊的參數,告訴瀏覽器這個請求是被允許的。
第2題結束。
---距離集滿300題還剩288題---
————————————我是可愛的題目分隔線————————————
題目3:什麼是Pythonic
Pythonic指在Python語言以自然、優雅符合Python設計哲學的方式寫程式碼。
例如:使用列表式生成式(list comprehensions),而非循環創建列表。
另一個問題來了,什麼叫:列表式生成式(list comprehensions)、循環創建列表(loop to create a list)?
循環創建列表是指像下列程式碼,傳統程式碼寫法會依照一段文字/一個想法/邏輯/算法(想不到有什麼可以形容,只好全寫上來了XD),來一行一行轉寫程式碼:
squares = []
for i in range(1, 11):
squares.append(i ** 2)
白話文:squares = []
創建一個名為squares的空列表,這個空列表是用來存放後面要計算的平方數for i in range(1, 11):
使用for循環,從1到10->>(因為range函數的使用範圍是不包含結尾值(這邊的的結尾值是11,所以不包含在裡面))squares.append(i ** 2)
就開始計算從1到10每個數字的平方,然後計算完成後就放到最初的squares = [] 這個陣列裡面
接著列表式生成式則是把循環創建列表精簡化~
延續上面的例子來說,程式碼就會長程下面這樣:
square = [i**2 for i in range(1, 11)]
白話文:squares的空陣列中要塞入範圍從1~10的變數i的平方和
對,翻成白話文也是直接一行解決~(撒花!
那我來統整一下列表式生成式跟循環創建列表的對比/差別在於:
square = [i**2 for i in range(1, 11)]
直接幫你「自動塞入」好了,回歸正題~什麼是Pythonic?
答:Pythonic即Python中使用列表式生成式的方式寫程式碼的一種方法/程式碼名稱。
第3題結束。
---距離集滿300題還剩287題---
————————————我是可愛的題目分隔線————————————
題目4:什麼是文字碼語言(Scripting language), Python是文字碼語言嗎?
首先,Python是文字碼語言。
那什麼是文字碼語言呢,它是用來編寫腳本的程式語言,通常被用來自動化某些任務,或擴展其他軟體功能(像是處理文本或管理系統)。
主要特點:
這邊再補充一下,常見的文字碼語言有哪些:
第4題結束。
---距離集滿300題還剩286題---
————————————我是可愛的題目分隔線————————————
題目5:什麼是靜態語言跟動態語言?
靜態語言(Static Typing):
舉例來說(用Java):
int age =25;
//變數age的類型是int(整數),這在編譯時就已經確定了。
動態語言(Dynamic Typing):
舉例來說(用Python):
age =25
#變數age可以是整數,也可以轉換成字串、列表等其他類型。
第5題結束。
---距離集滿300題還剩285題---
————————————我是可愛的題目分隔線————————————
題目6:.py檔及.pyc檔的差異
第6題結束。
---距離集滿300題還剩284題---
————————————我是可愛的題目分隔線————————————
題目7:Python裡註解的使用方式,以及Python裡//的用法
Python裡註解的使用方式:
Python裡//的用法:用來進行「整數除法」的運算符號,不會有小數點:
舉個例子:
a = 10
b = 3
result = a// b
print(result) #印出result 會等於3
第7題結束。
---距離集滿300題還剩283題---
————————————我是可愛的題目分隔線————————————
題目8:Python內建的容器資料型態有哪些
首先容器資料型態的意思是,它是被用來存放一組資料的結構。
那Python內建的容器資料型態有以下幾種:
list(列表 []):
屬於可以變動的有順序的序列,且也可以儲存多種資料型態
舉個例子:
my_list = [1, 2, 3, "apple"]
my_list.append("banana") # 新增一個項目
my_list[0] = 10 # 修改第一個項目
tuple(元組 ()):
屬於不可以變動的有順序的序列,建立後不能修改原本的內容
舉個例子:
my_tuple = (1, 2, 3, "apple") # 元組內容無法修改
set(集/組合):
沒有順序的東西集中在一起,只允許儲存不重複的的東西,難這些東西的內容是可以隨意修改(新增或刪除)的
舉個例子:
my_set = {1, 2, 3}
my_set.add(4) # 新增一個項目
my_set.remove(2) # 刪除一個項目
print(my_set)完後印出以下圖示:

dict(字典):除了是容器資料型態外,也是映射(mapping)資料型態
它是一種集合「關鍵字」和對應「該關鍵字的值」的容器,
「關鍵字」和對應「該關鍵字的值」可以隨時新增、修改或刪除
舉個例子:
my_dict = {"name": "Alice", "age": 25}
my_dict["age"] = 26 # 修改年齡
my_dict["city"] = "New York" # 新增一個鍵值對
print(my_dict)完後印出以下圖示:

另外Python內建的序列資料型態有以下幾種:
str(字串):
不可以變動的有順序字串序列,用來儲存文字檔
舉個例子:
my_string = "hello"
range(範圍):
用來生成數字序列的不可變類型,常被用在某某循環中
舉個例子:
my_range = range(5) # 生成從 0 到 4 的數字序列 ->>>5是不包含在內喔,
白話文:5是這個範圍的「邊界」不算在範圍「內」,所以只算0~4的值。
list:除了是容器資料型態外,也是序列資料型態
tuple:除了是容器資料型態外,也是序列資料型態
總結
第8題結束。
---距離集滿300題還剩282題---
————————————我是可愛的題目分隔線————————————
題目9:Python提供哪些內建可變(mutable)和不可變(immutable)的資料型態
內建可變(mutable)的資料型態:
這些資料型態在創建後可以修改它們的內容:
1. list
2. dict
3. set
4. bytearray(位元組陣列):可以修改內部的位元組數據
舉個例子:
my_bytearray = bytearray(b"hello")
my_bytearray[0] = 72 # 修改第一個位元組
print(my_bytearray)完後印出以下圖示:小寫的h變成大寫的H

不可變(immutable)的資料型態:
這些資料型態在創建後「不」可以修改它們的內容:
1. int:整數
2. float:浮點數(小數點)
3. complex:複數
4. str:字串
5. tuple:元組
6. frozenset:凍結的集合
my_frozenset = frozenset([1, 2, 3])
7. bytes:位元組
my_bytes = b"hello" # 不能修改 my_bytes 內的內容
總結
第9題結束。
---距離集滿300題還剩281題---
————————————我是可愛的題目分隔線————————————
題目10:串列(list)和元組(tuple)的區別
串列(list):
印出的結果如下圖:
假設你有一份購物清單,有時候你會增加或刪減物品,這時候用串列最合適:
shopping_list = ["milk", "bread", "eggs"]
shopping_list.append("butter") # 加入 butter
shopping_list.remove("bread") # 拿掉 bread
print(shopping_list)
印出的結果如下圖:
元組(tuple):
印出的結果如下圖:

如果你有一組固定的座標,不會改變的,這時候用元組:
coordinates = (34.0522, -118.2437) # 洛杉磯的經緯度 # 這些座標是不會改變的
第10題結束。
---距離集滿300題還剩280題---
————————————我是可愛的題目分隔線————————————